本文是学习GB-T 33479-2016 党政机关电子公文交换接口规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
本标准规定了电子公文交换系统之间以及交换系统与电子公文处理系统间进行数据交换时采用的
报文数据格式和接口。
本标准适用于电子公文系统的数据交换。
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GM/T 0006 密码应用标识规范
下列缩略语适用于本文件。
UUID: 通用唯一标识符( Universally Unique Identifier)
第5章定义了交换系统应用于电子公文时使用的业务类型结构。
第6章定义了交换系统之间、交换系统与处理系统之间使用的数据格式。
第7章定义了交换系统之间、交换系统与处理系统之间调用的接口形式。
上述数据格式和接口关系见图1。
公文传输信封
公文传输信封
style="width:9.95347in;height:4.58056in" />
图 1 电子公文交换接口与数据格式
GB/T 33479—2016
交换系统通过报文内容的交换完成任意电子文件数据的传输或者相关消息的传递。按照不同用
途,报文内容分为系统报文和业务报文。系统报文用于各种计算机状态消息的传递,业务报文则用于文
件数据的传输和业务状态消息的传递。
当用于传输公文时,业务报文内容既可以是公文文件,也可能仅是简短的业务状态消息。在本标准
中,这两种报文内容节点分别使用"公文类型"或"公文短报文类型"进行限定。
当业务报文中“类型”取值为"OFC"
时,6.1.5中"内容"节点按照"公文类型"进行解析,公文类型的
结构见图2。
style="width:4.64722in;height:4.64722in" />
style="width:4.64722in;height:4.64722in" />
图 2 公文类型结构
公文类型的元素说明见表1。
表 1 公文类型元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GB/T 33479—2016
当业务报文中"类型"取值为"RET"
时,6.1.5中"内容"节点按照"公文短报文类型"进行解析,公文
短报文类型的结构见图3。
style="width:5.50694in;height:2.63333in" />
图 3 公文短报文类型结构
公文短报文类型的元素说明见表2。
表 2 公文短报文类型元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
公文短报文业务类型的取值及其说明见表3。
表 3 公文短报文类型的取值说明
|
|
---|---|
|
|
|
|
|
|
报文属性类型的取值及其说明见表4。
表 4 报文属性类型的取值说明
|
|
---|---|
|
|
|
|
GB/T 33479—2016
报文内容类型的取值及其说明见表5。
表 5 报文内容类型的取值说明
|
|
---|---|
|
|
|
|
|
收发机构类型结构见图4。
style="width:5.02003in;height:1.98in" />收发机构类型
身份标识
身份名称
身份描述
图 4 收发机构类型结构
收发机构类型的元素说明见表6。
表 6 收发机构类型元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
密码算法类型结构见图5。
style="width:5.00666in;height:1.32682in" />密码算法类型
图 5
密码算法类型元素说明见表7。
签名算法
加密算法
密码算法类型结构
GB/T 33479—2016
表 7 密码算法类型元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
商密的摘要和签名算法遵照GM/T 0006,其他密级的算法遵照相应规范。
系统报文类型结构见图6。
style="width:5.22708in;height:2.64028in" />
style="width:0.16662in;height:0.13992in" />
style="width:0.17999in;height:0.14652in" />
图 6 系统报文类型结构
系统报文类型的元素说明见表8。
表 8 系统报文类型元素说明
|
|
|
|
|
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
![]() |
|
|
|
|
|
|
|
业务报文类型的结构见图7。
GB/T 33479—2016
style="width:7.71988in;height:4.64002in" />业务报文类型
类型
内容
附件
0..
言
言
官
日
附件名称
扩展名
附件标识
附件大小
附件内容
图 7 业务报文类型结构
业务报文类型的元素说明见表9。
表 9 业务报文类型元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
交换系统之间传输的数据文件称为报文传输信封,该文件为 XML,
报文信封模型见附录 A。 根节
点"报文传输信封"的结构见图8。
style="width:5.3in;height:3.38056in" />
图 8 报文传输信封结构
报文传输信封的属性与元素说明见表10。
表10 报文传输信封属性与元素说明
GB/T 33479—2016
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
报文头结构见图9。
style="width:4.77361in;height:5.64653in" />
style="width:4.77361in;height:5.64653in" />
图 9 报文头结构
报文头的元素说明见表11。
GB/T 33479—2016
表11 报文头元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
报文体结构见图10。
style="width:4.50005in;height:1.98in" />系统报文
报文体 日 明文报文
密文报文
图10 报文体结构
报文体的元素说明见表12。
表12 报文体元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
签名的结构见图11。
GB/T 33479—2016
style="width:4.24722in;height:2.03333in" />
style="width:0.24009in;height:0.2266in" />
图11 签名类型结构
签名类型的元素说明见表13。
表13 签名类型元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
交换系统与处理系统之间传输的数据文件称为公文传输信封,该文件以 XML
形式描述,其根节点
"公文传输信封"的结构见图12。
style="width:8.30694in;height:4.48681in" />
图12 公文传输信封结构
公文传输信封元素说明见表14。
GB/T 33479—2016
表14 公文传输信封元素说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
电子公文交换系统与处理系统以及不同的交换系统之间以报文形式进行数据交换,交换系统和处
理系统以 WebService 方式提供对外接口。
交换系统之间进行报文传输之前应先建立受信代码。受信代码由系统随机产生、双方认可且不重
复的字符串组成,用于确认双方身份。受信代码要求如下:
a) 受信代码为32位的 UUID;
b)
交换系统之间进行报文传输应带有受信代码信息,否则被请求方应拒绝接收;
c)
受信代码建立后在有效期内可多次使用;有效时间由双方协商确定,双方均可强行终止;
d) 受信代码建立后在有效期内不再重复请求受信代码;
e) 交换系统应维护受信代码、及时销毁已经超时的受信代码。
注:双方受信代码不一致的情况有可能发生,如一方系统故障或一方主动销毁。
功能说明:
请求受信代码。
接口原型:
string reqWebService(string unitId,string linkCode,string
seconds,string reqType)
参数说明(4个参数):
参数1:unitId 请求建立受信代码的单位标识;
参数2:linkCode
预设握手字符串,由发送方生成的一串随机字符组成。此字符串用于确认
被请求方返回的信息是否是针对本次请求;
参数3:seconds 表示超时时间,即受信代码的有效时间,单位秒;
参数4:reqType 代表请求类型,枚举值,可取值为:BGN 请求建立受信代码;END
请求强制
终止受信代码。
返回值说明:
GB/T 33479—2016
\<result
〉\<unitId>.\</unitld>\<linkCode)..\</linkCode>\<transCode>..\</transCode>\</result)
其中,unitld
为被请求方的单位标识,linkCode为请求方生成的握手信号,transCode 为受信
代码。
若该接口返回值为refuse(拒绝连接),则请求方应终止后继操作。
功能说明:
请求传输报文。
接口原型:
string sendBaseXMLEsbWebService(string transCode,string message)
参数说明(2个参数):
参数1:transCode 受信代码;
参数2:message 报文,其格式应遵照6.2的要求。
返回值说明:
0表示报文接收成功;
1表示被请求方不认可作为参数的受信代码。则请求方应按照7.2.2请求得到新的受信代码
后再传输报文。
其他非0值表示错误代码。
功能说明:
交换系统接收处理系统发送的报文,与交换系统之间的传输报文的接口名称一致,但不需要受
信代码作为参数。
接口原型:
string sendBaseXMLEsbWebService(string message)
参数说明(1个参数):
参数1:message 传输报文,格式应遵照6.3的要求。
返回值说明:
success 表示报文接收成功,否则报文接收失败。
处理系统接收交换系统发送的报文采用注册机制,交换系统调用注册的处理系统接口完成报文
传输。
GB/T 33479—2016
(规范性附录)
电子公文交换相关报文信封的 XML 模型
电子公文交换相关报文信封的 XML 模型如下:
〈? xml version="1.0"encoding="UTF-8"?>
\<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="quali-
fied" attributeFormDefault="unqualified">
\<!--交换系统之间的报文协议->
\<xs:simpleType name="报文属性类型"〉
\<xs:restriction base="xs:string">
〈xs:enumeration value="SYS">
\<xs:annotation>
\<xs:documentation〉系统报文\</xs:documentation〉
\</xs:annotation〉
\</xs:enumeration>
\<xs:enumeration value="BIZ">
\<xs:annotation〉
\<xs:documentation)业务报文\</xs:documentation〉
\</xs:annotation〉
\</xs:enumeration〉
\</xs:restriction〉
〈/xs:simpleType>
(xs:simpleType name="报文内容类型">
(xs:restriction base="xs:string"〉
\<xs:enumeration value="OFC">
\<xs:annotation〉
\<xs:documentation〉公文\</xs:documentation〉
\</xs:annotation)
\</xs:enumeration)
〈xs:enumeration value="RET">
\<xs:annotation〉
\<xs:documentation>公文短报文\
〈xs:complexType name="收发机构类型">
(xs:sequence)
\<xs:element name="身份标识" type="xs:string"/>
〈xs:element name="身份名称" type="xs:string"/>
\<xs:element name="身份描述" type="xs:string" minOccurs="0"/>
GB/T 33479—2016
\
〈xs:complexType name="密码算法类型"〉
\<xs:sequence)
\<xs:element name="签名算法" type="xs:string" minOccurs="0"/>
\<xs:element name="加密算法" type="xs:string" minOccurs="0"/>
\</xs:sequence>
\</xs:complextype>
〈xs:complexType name="业务报文类型"〉
\<xs:sequence)
\<xs:element name="类型" type=" 报文内容类型"/>
〈xs:element name="内容" type="xs:anyType"/>
\<xs:element name="附件" minOccurs="0"maxOccurs="unbounded">
〈xs:complexType)
〈xs:sequence)
\<xs:element name="附件名称" type="xs:string"/>
\<xs:element name="扩展名" type="xs:string" minOccurs="0"/>
\<xs:element name="附件标识" type="xs:string" minOccurs=
"0"/>
\<xs:element name="附件大小" type="xs;unsignedInt"minOccurs=
"0"/>
\<xs:element name="附件内容" type="xs:base64Binary"/>
\
\</xs:sequence>
〈/xs:complexType)
\<xs:complexType name="系统报文类型"〉
\<xs:sequence)
(xs:element name="原报文标识" type="xs:string"/>
〈xs:element name="类型" type="xs:string"/>
\<xs:element name="时间" type="xs:dateTime"/>
〈xs:element name="备注" type="xs:string" minOccurs="0"/>
\</xs:sequence>
〈/xs:complexType〉
〈xs:element name="报文传输信封"〉
\<xs:complexType>
\<xs:sequence)
〈xs:element ref="报文头"/>
〈xs:element ref="报文体"/>
\<xs:element ref="签名" minOccurs="0"/>
\</xs:sequence>
〈xs:attribute name="Version" type="xs:string" use="required"
fixed="1.0"/>
GB/T 33479—2016
\
(xs:complexType)
〈xs:sequence)
\<xs:element \<xs:element
\<xs:element
name="报文标识" type="xs:string"/>
name="报文属性" type=" 报文属性类型"/>
name="报文发送方" type=" 收发机构类型"/)
\<xs;element name="报文接收方" type=" 收发机构类型" maxOccurs=
"unbounded"/>
〈xs;element \<xs:element \<xs:element
\<xs:element
\</xs:sequence \</xs;complexType)
name="发出时间" type="xs:dateTime"/)
name="密码算法" type=" 密码算法类型" minOccurs="0"/>
name="报文备注" type="xs:string" minOccurs="O"/)
name="传输票据" type="xs:string" minOccurs="0"/>
\
\<xs:complexType)
〈xs;choice)
〈xs:element 〈xs:element
〈xs:element
(/xs:choice)
\</xs:complexType)
name="系统报文" type=" 系统报文类型"/>
name="明文报文" type=" 业务报文类型"/>
name="密文报文" type="xs;base64Binary"/>
\
〈xs:complexType
xs:sequence)
\<xs:element 〈xs:element
(xs:element
(/xs:sequence)
\</xs:complexType)
name="签名者" type="xs:string" minOccurs="O"/>
name="签名时间" type="xs:dateTime" minOccurs="0"/>
name="签名值" type="xs:base64Binary"/>
\
(xs:complexType name="公文类型">
〈xs:sequence)
(xs:element |
|
---|---|
(xs:element |
|
(xs:element |
|
(xs:element |
|
(xs:element |
|
GB/T 33479—2016
\<xs:element name="公文内容" type="xs:base64Binary"/>
\<xs:element name="扩展属性" type="xs:anyType" minOccurs="0"/>
\</xs:sequence>
\</xs:complextype>
〈xs:simpleType name="短报文业务类型"〉
\<xs:restriction base="xs:string">
\<xs:enumeration value="Received">
\<xs:annotation〉
\<xs:documentation>送达\
\<xs:annotation>
\<xs:documentation〉签收\</xs:documentation>
\
\<xs;annotation〉
\<xs:documentation>拒收\
\<xs:complexType name="公文短报文类型"〉
\<xs:sequence〉
\<xs:element name="原报文标识" type="xs:string"/>
\<xs:element name="业务类型" type=" 短报文业务类型"/>
(xs:element name="时间" type="xs:dateTime"/>
\<xs:element name="意见" type="xs:string" minOccurs="O"/>
\</xs:sequence>
\
\<xs:complexType)
\<xs:sequence〉
\<xs:element \<xs:element \<xs:element
curs="unbounded"/>
\<xs:element
\</xs:sequence)
name="报文标识" type="xs:string"/>
name="发文机关" type=" 收发机构类型"/>
name="收文机关" type=" 收发机构类型" maxOc-
name="明文报文" type=" 业务报文类型"/>
GB/T 33479—2016
\</xs:complextype>
\</xs:element>
\
\</xs:complexType)
\</xs:element〉
\</xs:schema〉
更多内容 可以 GB-T 33479-2016 党政机关电子公文交换接口规范. 进一步学习